package com.itany.corejava.code09_集合.list集合;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author 石小俊
 * @date 2023年05月06日 9:05
 * 提示用户输入5名学生的学号和成绩,创建Student对象(属性:no、score),然后放到ArrayList集合中
 * 1.遍历集合,删除学号为2的学生
 * 2.不遍历集合,删除学号为3的学生
 * 3.不遍历集合,判断集合中是否包含学号为5的学生
 */
public class Test06_练习 {

    public static void main(String[] args) {
        // 提示用户输入5名学生的学号和成绩,创建Student对象(属性:no、score),然后放到ArrayList集合中
        Scanner sc = new Scanner(System.in);
        List<Student> students = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            System.out.println("************输入第" + (i + 1) + "个学生信息************");
            Student student = new Student();
            System.out.print("请输入学号:");
            student.setNo(sc.next());
            System.out.print("请输入成绩:");
            student.setScore(sc.nextDouble());
            // 将新增的学生信息保存到集合中
            students.add(student);
        }
        System.out.println("集合数据:" + students);

        // 1.遍历集合,删除学号为2的学生
        for (int i = 0; i < students.size(); i++) {
            // 取出当前迭代的学生对象
            Student student = students.get(i);
            if (student.getNo().equals("2")) {
                students.remove(i);
            }
        }
        System.out.println("删除学号为2的学生后的集合数据:" + students);

        // 2.不遍历集合,删除学号为3的学生
        // 创建一个学号为3的学生对象
        Student student = new Student();
        student.setNo("3");

        // 可以取出集合中对应元素进行比较
        // 重写equals方法只比较no后相等,否则不是同一个对象
        // Student student3 = students.get(1);
        // System.out.println(student);
        // System.out.println(student3);
        // System.out.println(student.equals(student3));

        // 如果此时的学生是集合中的学生对象,则可以直接删除
        students.remove(student);

        System.out.println("删除学号为3的学生后的集合数据:" + students);

        // 3.不遍历集合,判断集合中是否包含学号为5的学生
        Student student5 = new Student();
        student5.setNo("5");
        System.out.println("集合中是否包含学号为5的学生:" + students.contains(student5));
    }

}
